#coding:utf-8
class A():
    x = 3
    def __init__(self):
        self.a = 2
        self.b = 3
        self.c = 5

    def getattrs(self,args = []):
        '''
        获得对象的属性，如果没有指定属性列表，返回对象所有属性，如果指定了属性，返回对象指定的属性。
        :param args: 对象属性列表
        :return: 返回一个字典对象
        '''
        # attrs = {}
        attrs =  vars(self)
        if args:  #如果args不为空，将args中指定的属性以字典的形式返回
            # for arg in args:
            #     attrs[arg] = vars(self).get(arg,None) #添加到字典attrs中
            # return attrs

            # return dict([arg,attrs.get(arg)]  for arg in args)  #字典生成器
            return {arg:attrs.get(arg)  for arg in args}
        else:
            # return vars(self)
            return attrs

a = A()
print a.getattrs(args=['a','b','c'])